【内网穿透开机】外网环境下基于Frp、VNC技术远程开机 您所在的位置:网站首页 linux 远程开机命令 【内网穿透开机】外网环境下基于Frp、VNC技术远程开机

【内网穿透开机】外网环境下基于Frp、VNC技术远程开机

2023-08-09 00:31| 来源: 网络整理| 查看: 265

外网环境下基于Frp、VNC技术远程开机

之前文章向大家介绍了 外网环境下基于Frp、VNC技术远程访问计算机,实现内网穿透。在完成上一期内容后,我们可以继续基于Frp、VNC技术,更进一步,实现远程开机!

之前博客上有很多物理远程开机的方法,今天我们讲讲采用 WOL远程唤醒 方式实现开机。

拥有公网IP用户 公网环境下通过APP 公网环境下通过浏览器 非公网IP用户 路由器 局域网内其他主机 VNC远程登陆 开启WOL 配置 访问路由器后台 唤醒 内网穿透 开启FRPC服务 配置VNC和FRP

采用 WOL远程唤醒 方式实现开机 根据不同网络环境,主要有三种不同方法,针对拥有公网IP的用户(动态公网IP相比于静态公网IP,更为常见,但也只多了DDNS等步骤)而言,最为简单,网上大多数文章也都是在介绍这种网络环境下的唤醒;针对非公网IP的用户,则需要进行内网穿透。有一部分用户路由器支持刷固件,同时也愿意刷固件,可以使用路由器自带的FRPC,直接进行穿透 点此查看实现方式 ;最后一部分用户,没有公网IP,路由器也刷不了固件,本文主要针对该类用户,提出了一种 WOL远程唤醒 方法,即采用类似VPN技术,通过穿透其他内网主机的方式,外网登陆路由器后台,完成计算机唤醒。当然,对上述三种方法,在下文都会进行介绍,对于较为简单或者之前已经介绍过的操作步骤,附有传送门,点击即可查看。

一、WOL实现条件(硬件要求)

网络唤醒(Wake-on-LAN,WOL),中文译为“网络唤醒”、“远端唤醒”技术。WOL是一种技术,同时也是该技术的规范标准,它的功能在于让已经进入休眠状态或关机状态的设备(如电脑、NAS等),透过局域网(多半为以太网)的另一端对其发令,使其从休眠状态唤醒、恢复成运作状态,或从关机状态转成开机状态。此外,与WOL相关的技术也包括远端下令关机、远端下令重新开机等相关的遥控机制。

实现远程唤醒技术功能的电脑,对硬件要求主要表现在电源,主板和网卡上。

1. 电源

设备电源必须是符合ATX 2.01标准以上的ATX电源,+5V Standby电流至少应在600mA以上。主要是保证在电源主要供电停止工作后,通过Standby线路供给主板和网卡工作电源。P3处理器以后的电源都支持。

2. 主板

在PCI2.1标准和2.1标准以前,支持远程唤醒的主板上通常都拥有一个专门的3芯插座,保证在停机状态下给网卡供电(工作时由PCI插槽供电)。由于现在的主板绝大部分支持PCI 2.2标准,在主机停机状态下仍然可以直接通过PCI插槽向网卡提供+3.3V Standby电源,这样就不需要外加的3芯电源线给网卡供电。符合PCI 2.2标准的主板在供电上都支持远程唤醒,但是有的不能响应网卡和PCI设备的开机信号。

支持远程唤醒的主板在BIOS设置中还要将网卡和PCI设备启动功能打开。如:“Wake on LAN”,“Power on LAN”,“Wake on PCI Card”,"Power on PCI Card"设置项,一般只要不是很老的机子,主板已经默认打开了远程唤醒功能。

3. 网卡

网卡必须要支持WOL标准,这个标准最早由AMD公司提出。要想知道你的网卡是否支持WOL,在你确认电源、主板已经支持的情况下,你可以先将设备关机,然后查看连接你网卡的设备上的网线连接状态指示灯。如果连接指示灯亮表示你的网卡支持WOL功能(即使主板BIOS中功能没有启用灯也亮),如果连接指示灯灭表示你的网卡不支持WOL功能。

实际上上述要求只是理论上的要求,只要不是古老的计算机,默认上述要求都已经满足,无需手动开启。

二、开启WOL

本文主要以华硕路由器开启WOL为例,进行如下设置(计算机与路由器之间插上网线,以固定MAC码):

在这里插入图片描述 之后关闭计算机,用处于局域网内的其他设备登陆路由器后台,点击唤醒,可以看到计算机被唤醒。

三、外网访问路由器后台

现在,理论上只需要访问路由器后台,就能够实现远程开机。

登陆路由器后台的方法对于拥有公网IP(静态/动态)的用户来说,只需要端口转发和DDNS域名解析,较为容易,在此不再多述。 具体操作方法点击此处查看

此外,针对拥有公网IP(静态/动态)并且使用华硕路由器的用户,可以直接下载 AiCloud ,进行开机控制,无需使用浏览器登陆进行唤醒操作。

在这里插入图片描述 在这里插入图片描述

本文主要介绍在非公网IP环境下,如何访问路由器后台。这里以FRP内网技术为例:

方法1:frp直接穿透路由器(推荐)

这个方案最为简便,推荐使用点击查看方法一实现方式

当然,考虑到大多数用户不想或者不能刷固件,我们还可以使用后2种方式实现远程开机。

方法2:使用frp内网穿透长期开启的局域网内机器 ,使用udp命令行广播技术唤醒计算机

长期开启的内网机器是Linux主机,可以基于Linux主机的udp广播技术,实现远程开机。这个方法较为简便。 实现方式点此查看

方法3:使用frp内网穿透长期开启的局域网内机器 ,并使用VNC技术远程登陆访问路由器后台

该方法较为愚笨,但不失为一个直观的唤醒方式。

下面还是以树莓派为例,使用VNC技术远程登陆访问路由器后台:

(1)开启VNC服务端 sudo raspi-config

在这里插入图片描述 在这里插入图片描述

# 开启VNC vncserver # 或者 tightvncserver

如下图显示,表明成功开启:

在这里插入图片描述 我们可以进入log文件,查看VNC服务的端口号: 在这里插入图片描述 在这里插入图片描述 此时可以局域网环境下尝试使用VNC客户端登陆树莓派,验证VNC是否正常运行。

(2)frpc配置

关于FRP内网穿透方法,可参见 点击查看本文 本文在进行如下操作前,树莓派的frp环境,以及frps配置,可参见 点击查看本文 不要忘记在服务器端开放5901端口

sudo apt-get update wget https://github.com/fatedier/frp/releases/download/v0.17.0/frp_0.17.0_linux_arm.tar.gz tar -zxvf frp_0.17.0_linux_arm.tar.gz #解压缩:tar xvf 文件名 cd frp_0.17.0_linux_arm #进入解压目录 #修改frps.ini文件 sudo vim ./frpc.ini 添加以下内容(需要删除注释): [common] server_addr = your_server_ip #VPS服务器IP server_port = 7000 #端口,与服务端bind_port一致 [range:VNC-Pi] type = tcp local_ip = 127.0.0.1 local_port = 5901 #经过log文件查询,5901是VNC的默认端口 remote_port = 5901

如果之前已经开启过 frpc 服务,需要暂停:

sudo systemctl stop frpc # 之前是采用systemctl方式开启的frpc服务 ps -ef |grep frpc sudo kill -9 进程号 cd frp_0.17.0_linux_arm ./frpc -c ./frpc.ini # 如果确保没有错误,可以不执行这两行,直接执行下面的语句。 sudo systemctl start frpc

这里我使用 ./frpc -c ./frpc.ini 命令,查看到计算机和树莓派穿透时候VNC名称冲突了,因此我予以了名称更换。 在这里插入图片描述

四、远程访问(以下图片都来自于移动端截屏) 在计算机开启VNC-Server环境下,移动端打开VNC-Viewer 点击右上角 + ——>输入VPS服务器IP:5901——> 自定义连接名称 ——> Save

在这里插入图片描述

首次登陆要求输入密码(即树莓派的用户密码) 为方便下次远程,可以选择记住密码,最后点击Continue 登陆路由器后台,并将路由器后台页面保存至桌面

在这里插入图片描述

至此,外网环境下基于FRP、VNC技术,成功实现了远程开机。

五、外网实践(全程移动端为例) 首先使用 VNC-Viewer app 登陆树莓派,通过进入家庭局域网,登陆 路由器后台

在这里插入图片描述 在这里插入图片描述

进入 路由器后台 后,唤醒需要远程登陆的计算机

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

远程开机后,通过 TeamViewer 或者 VNC 远程登陆计算机 实现方式点击此处查看

在这里插入图片描述

有粉丝问树莓派VPC登录提示too many security failures如何解决,下面给出我的解决方法:

开启ROOT用户 sudo passwd root sudo passwd --unlock root #启用root

如果报错:passwd: password expiry information changed.则是ssh默认关闭了root登陆。

vi /etc/ssh/sshd_config PermitRootLogin yes #值更改为yes

在这里插入图片描述

#重启ssh服务 sudo systemctl restart ssh #为root用户应用于当前用户相同的bash配置 sudo cp ~/.bashrc /root/.bashrc 重启vncserver su 用户名 登录密码 vncserver -list vncserver -kill :端口号 #重启: vncserver :端口号

在这里插入图片描述 查看log文件中的端口,重新连接。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有